Image sensor based optical defect correction

ABSTRACT

A method and apparatus for constructing an imaging system with optics related image defect correction. These defects include but are not limited to vignetting, distortion, sharpness, etc. The optics related defect correction is implemented in either the optics device hardware, firmware or software, or the host device hardware, firmware or software or any hardware, firmware, software or host, client hardware, firmware, software combination thereof The optics related defect correction is used to optimize either image system cost, performance, form factor or any combination thereof.

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This is a continuation-in-part application of U.S. application Ser. No. 09/345,167, filed Jun. 30, 1999, and entitled “Image Sensor Based Vignetting Correction”, which disclosure is incorporated herein by reference.

BACKGROUND OF THE INVENTION

[0002] The present invention relates to digital imaging devices, and in particular digital cameras for correcting optical defect effects.

[0003] An example of one such optical defect is vignetting. The vignetting effect is when the brightness around the edges of a screen is less than the brightness in the center of the screen, creating a halo effect. Professional photographers will sometimes try to intentionally create this effect with an appropriate lens or screen, to produce a softened image at the edges of a picture. However, when this effect appears unintentionally in digital photographs, it is annoying. A variety of techniques have been developed to measure and address vignetting effects.

[0004] U.S. Pat. No. 4,884,140 shows an analog circuit for providing vignetting compensation for a video camera using a zoom lens which causes vignetting.

[0005] U.S. Pat. No. 5,434,904 shows measuring the vignetting effect for an x-ray examination apparatus by using a constant brightness image. A correction factor is then stored in the memory for each pixel.

[0006] U.S. Pat. No. 5,576,797 shows the detection of vignetting effects in a camera with a focus detecting device.

[0007] U.S. Pat. No. 5,381,174 shows the correcting of vignetting due to operation of a zoom lens by using a field frequency sawtooth signal.

[0008] U.S. Pat. No. 4,816,663 shows the detection of vignetting between a photo taking lens and focus detecting optical system.

[0009] Other optical defects include barrel distortion (makes straight lines appear curved), spherical aberration (causes an image that lacks contrast), chromatic aberration and astigmatism.

[0010] Digital cameras for use with a personal computer for personal teleconferencing have become cheaper and cheaper. This puts pressure on the camera manufacturers to use cheaper lenses, which have more of a vignetting effect. In addition, the price pressure forces manufacturers to use fewer semiconductor chips, thus making the use of semiconductor memory to store vignetting corrections undesirable. Accordingly, there is a need for a digital camera which is inexpensive to manufacture and also corrects for vignetting of an inexpensive lens.

SUMMARY OF THE INVENTION

[0011] The present invention provides a method and apparatus for constructing an inexpensive camera or other imaging device with optical defect correction in the camera or intelligent host electronic hardware, firmware, software or any combination thereof. The system is programmable through the use of a memory (e.g., one or more registers) for storing values corresponding to the amount optical defects of a particular lens or lens array used in the camera. The register values are provided to the various system correction mechanisms which implement algorithms which correct for the amount of optical defect such as vignetting of pixels. The correction mechanisms could be algorithms implemented in camera circuits, integrated circuits, microcontroller or microprocessor firmware or software, intelligent host circuits, integrated circuits, processor firmware or software, or any circuit, integrated circuit, microcontroller, microprocessor, processor, host or client combination thereof.

[0012] The invention thus allows different lens suppliers or lens types to be used in cameras as they are manufactured, by simply programming different computed values into registers. The correction is applied on raw sensor data after it is converted into digital form, wherever in the system it is most appropriate for cost and performance optimization (such as but not limited to image quality or frame rate). Thus, if the data is corrected prior to the optional collection of statistics on the sensor data and the compression of the data for transmission to a host computer over a bus, the vignetting or other optical defect correction of the invention maintains the resolution of the image and allows real-time performance. It also makes more accurate statistics collection, thus making the automatic gain control (AGC) in the host, and the automatic white balance (AWB) in the host more accurate. Alternately, trade-offs can be made in where the correction is done, based on cost and performance. It may be desirable to do the correction in host software if there isn't time or horsepower in the camera, or to preserve a desired frame rate from the camera. The product form factor may dictate what corrections are done (such as but not limited to a low profile or wide angle lens, which can create greater distortions that need to be corrected).

[0013] For a further understanding of the nature and advantages of the invention, reference should be made to the following specific description taken in conjunction with the accompanying drawings. For simplicity, this specific description outlines only vignetting and not other types of optical defect corrections and only a device hardware based implementation approach.

BRIEF DESCRIPTION OF THE DRAWINGS

[0014]FIG. 1 is a drawing of a pixel array and brightness curve illustrating the vignetting effect.

[0015]FIG. 2 is a block diagram of a camera and computer system with vignetting correction according to one embodiment of the invention.

[0016]FIG. 3 is a block diagram of one embodiment of a hardware vignetting correction circuit according to the invention.

DESCRIPTION OF THE SPECIFIC EMBODIMENTS

[0017]FIG. 1 illustrates a pixel array 11 and a corresponding brightness curve 13 over the Y-axis. A central pixel 14 with value (x₀, y₀) corresponds to the point of maximum brightness of the lens. A second example pixel 15 is near the minimum brightness, showing a vignetting effect of having the difference between curve 13 and a maximum brightness value 16. The present invention corrects this vignetting effect in both X and Y directions.

[0018] In one embodiment, a threshold indicated by r_(T) is illustrated within which the curve 13 is near the maximum value 16, and no vignetting correction need be applied. Alternately, the correction can be applied to all of the pixels regardless to avoid any transition effects at the points r_(T).

[0019]FIG. 2 illustrates a camera and computer system implementing the vignetting correction of the invention. Shown is a video camera 17 and host computer 18. Video camera 17 includes a lens 10 and a photo sensor array, such as a CMOS or CCD array 12, and is connected to a USB (Universal Serial Bus) 20.

[0020] The signals from the CMOS chip are provided to an analog front end 40 which includes a differential amplifier or correlated double sampler (CDS) 42, which provides the analog signals to an automatic gain control (AGC) circuit 44. The data is then provided to an analog-to-digital converter (ADC) 46.

[0021] The digitized signals, rather than being stored in a frame buffer memory as in the prior art, are then provided directly to a digital processing circuit 48. They are first provided to a video digital signal processor 50 which performs the compression, cropping, scaling and other functions on the data, as well as digital filtering.

[0022] Data from video DSP 50 is provided to a bus interface 54 which includes a bus controller buffer 56 and a bus controller 58. Preferably, bus controller buffer 56 is capable of storing two USB frames at the maximum possible rate, or 2 Kbytes. Depending upon the frame rate, compression rate, etc., this may typically vary up to 10 lines, or even to 15-20 lines if decimation is done.

[0023] Bus controller 58 provides a control signal on a line 60 to a timing generator 62. Timing generator 62 provides clocking signals on line 64 to CMOS chip 12. Clocking signals 64 include the horizontal and vertical transfer pulses. In one embodiment, the analog front end 40 and the timing generator 62 are integrated onto the same semiconductor chip substrate 41 as CMOS array 12.

[0024] DSP unit 50 includes a vignetting correction circuit 70 according to the present invention. This circuit utilizes a constant value in a constant register 72 to perform the vignetting correction. Depending upon the particular lens 10 which is chosen, its specified vignetting amount can be used to provide constant 72. Thus, different lenses could be used in manufacturing a camera by simply programming a different constant value into register 72. This allows multiple sources to be used for the lenses, and allows compensation for changes in lens quality from lot to lot or manufacturer to manufacturer.

[0025] As can be seen, the vignetting correction is done before a statistics unit 74 collects statistics which are than transmitted to the host processor 18. In addition, it is prior to any compression performed in bus interface 54.

[0026] On the host side of bus 20, host 18 includes a color processing unit 76 which can perform AGC and AWB (automatic white balance) adjustments based on the statistics provided it. Since the vignetting correction is applied before the statistics are taken, this processing will be more accurate. In addition, the application of the vignetting correction prior to compression and transmission over the bus also improves the accuracy of the signal. After color processing, the signal is provided to a display 78 as shown.

[0027] An embodiment of an equation for implementation and hardware to perform the vignetting correction is set forth below. The vignetting defect of a low quality lens may be modeled as pass through in the middle of the lens and a parabolic curve near the edge of the lens. The transform function is isotropic. Let p_(i) and p_(o) be the pixel value before and after vignetting correction, and x₀ and y₀ be the coordinate of the center of the lens (should be the center of the image if the lens is mounted properly). Then,

p _(o) =p _(i)*(a*r ²+1)

=p _(i)*(a*((x−x₀)²+(y−y _(o))²)+1

[0028] “a” is a small positive constant. To be on the safe side, a maximum of 50% vignetting can be corrected, which means:

1.0=0.5*(a*(176*176+144*144)+1)

a=1.9338*10⁻⁵

[0029] Normalized by 2²⁶, this will give a=1298. By limiting a to 0 through 1023, and performing the inverse computation, the maximum correctable vignetting is 56%.

[0030] Note that in the formula given above, the pixel aspect ratio is not taken into account. For square pixel, the equation is exact, for 12/11 pixel aspect ratio, the result is slightly off. Also, a will be scaled by ¼ if the sensor format is non-scaled QCIF (subsampled QCIF from CIF by leaving out every other pixels in both horizontal and vertical directions).

[0031] If y_(i) is 10 bits, (x−x₀)² and (y−y₀)² is 16 bits (for CIF size), and y₀ is 10 bits, this determines that a needs to be 10 bit (0 through 1023).

[0032]FIG. 3 is a block diagram of one embodiment of a hardware system for implementing the equation described above. In particular, an optional selection circuit 80 is applied to the select input of a multiplexer 82. Where the pixel position is less than the threshold r₂, the input pixel pi on line 84 is simply passed through to the output pixel, p₀, on line 86. If it is greater than the threshold, a vignetting correction is applied by implementing the formula above with the hardware shown in FIG. 3.

[0033] In particular, the current x value of the pixel, x_(i), is applied to arithmetic circuit 88, where the central pixel, x₀, is subtracted from it. This value is then squared by applying its input twice, through a multiplexer 90, to a multiply circuit 92, where it is accumulated in an add/accumulator 94. Similarly, the y value y_(i) is provided to a circuit 96, where the difference from the center y value, y₀, is determined. This is similarly applied as two values through mux 90 to a multiplier 92, where it is squared and provided to add/accumulator 94, where it is added to the squared x value. The use of the multiplexer simply allows, by time division multiplexing, the same multiplier 92 to be used for both calculations. Obviously, an alternative would be to provide two separate multiply units.

[0034] The output of accumulator 94 is then provided to a second multiplier 96, where it is multiplied by the constant value from register 72. The value of one is then subtracted in a unit 98, and this value is multiplied by the pixel value, pi, in a multiplier 100. The output is provided on a line 102 through multiplexer 82 to output line 86. Obviously, variations of the circuitry could be provided, such as using the same multiply circuit for multipliers 92, 96 and 100, with the multiplier being used for different purposes in different time slots.

[0035] Optional circuit 80 provides a comparator 104 which compares the output of add/accumulator 94 (the radius value of the x²+y² values) to the threshold radius in a register 106.

[0036] Preferably, the constant a has the same number of bits as the pixel value, p_(i). Thus, if p_(i) is 10 bits, while the x and y values are 16 bits, the constant a would be 10 bits. Also, a can be scaled by ¼ if the sensor format is non-scaled QCIF (cropped). Thus, correction is provided where the image is cropped before the vignetting correction.

[0037] In addition, correction can be done for the pixel aspect ratio by multiplying the y value by {fraction (11/12)} where a TV will be used.

[0038] In one embodiment, the correction will take place only outside a predefined diameter. This assumes that the lens performs satisfactorily around the center of the lens, which is often a reasonable assumption. By doing so, a more accurate correction model can be derived. Let r_(T) be the diameter within which the vignetting defect can be ignored. Then,

[0039] If r<=r_(T),

p_(o)=p_(i),

[0040] if r>=r_(T),

p _(o) =p _(i)*(a*(r ² −r _(T) ²)+1)

=p _(i)*(a*(((x−x ₀)²+(y−y ₀)²)−((x _(T) −x ₀)²+(y _(T) −y ₀))+1)

[0041] The present invention thus allows variation in lenses and also cheaper lenses to be used. It improves the AGC and AWB in the host computer. Additionally, it allows better object motion tracking. Object motion is usually done by assuming the luminance value is the same as the object moves to the edge of a sensor, and thus tracking by looking for the same luminance value. Obviously, vignetting effects can thwart the efforts to locate the object. By applying the vignetting correction close to the sensor, this can be overcome. The invention also provides overall improved video quality.

[0042] Also, due to the need for image compression for transmitting over a bus, such as a universal serial bus (USB), having the host do vignetting corrections will result in less precision. Providing vignetting correction on the sensor side of the bus in the present invention provides the correction prior to compression to transmit over the bus. The camera can include an interface to the USB. Alternately, a bus interface to a memory card could be used.

[0043] As will be understood by those of skill in the art, the present invention may be embodied in other specific forms without departing from the essential characteristics thereof. For example, the lens used could be a multiple element lens, such as a lenticular array, which has a packed array of cylindrical (or spherical or other shape) lenslets. Instead of vignetting, the optical defect corrected for could be barrel distortion (makes straight lines appear curved), spherical aberration (causes an image that lacks contrast), chromatic aberration or astigmatism. Accordingly, the foregoing description is intended to be illustrative, but not limiting, of the scope of the invention which is set forth in the following claims. 

What is claimed is:
 1. A method for manufacturing a digital imaging device which connects to an intelligent host, comprising: determining an optical defect effect of a first lens; installing said first lens in a first camera housing; determining an optical defect effect of a second lens; installing said second lens in a second camera housing; installing in each housing a photosensor array mounted behind said lens; coupling an analog processing circuit to each said photosensor array; coupling an analog to digital converter to each said analog processing circuit; coupling a digital processing circuit to an output of each said analog to digital converter, said digital processing circuit including a memory for storing a correction value corresponding to said optical defect effect, a correction circuit, coupled to said memory, for adjusting a value of selected pixels according to a formula using said correction value, to correct for said optical defect effect; coupling a bus interface circuit to an output of each said digital processing circuit for connecting to a bus for transfer of data to said intelligent host; storing a first correction value in said memory in said first camera housing, said first correction value corresponding to said optical defect effect of said first lens; and storing a second correction value in said memory in said second camera housing, said second correction value corresponding to said optical defect effect of said second lens.
 2. The method of claim 1 wherein said first lens is a multiple element lens array.
 3. The method of claim 1 wherein said imaging device is a camera.
 4. The method of claim 1 wherein said optical defect is vignetting.
 5. The method of claim 1 wherein said correction circuit does not adjust the value of pixels within a selected distance of a center of said lens.
 6. The method of claim 1 wherein said correction circuit also corrects for a pixel aspect ratio.
 7. The method of claim 1 wherein said correction value is a constant and has a number of bits equal to a number of bits used to represent a brightness of said selected pixels.
 8. The method of claim 1 wherein said correction value is a constant and said correction circuit further comprises a scaling input for scaling said constant.
 9. A digital imaging device for connecting to an intelligent host, comprising: a lens; a photosensor array mounted behind said lens; an analog processing circuit coupled to said photosensor array; an analog to digital converter coupled to said analog processing circuit; a digital processing circuit coupled to an output of said analog to digital converter, said digital processing circuit including a register for storing a correction value corresponding to an optical defect of said lens, a correction circuit, coupled to said register, for adjusting a value of selected pixels according to a formula using said correction value, to correct for said optical defect of said lens; and a bus interface circuit coupled to an output of said digital processing circuit for connecting to a bus for transfer of data to said intelligent host.
 10. The digital imaging device of claim 9 wherein said correction circuit does not adjust the value of pixels within a selected distance of a center of said lens.
 11. The digital imaging device of claim 9 wherein said correction circuit also corrects for a pixel aspect ratio.
 12. The digital imaging device of claim 9 wherein said correction value has a number of bits equal to a number of bits used to represent a brightness of said selected pixels.
 13. The digital imaging device of claim 9 wherein said correction value is a constant, and further comprising a scaling input to said correction circuit, for scaling said constant.
 14. The digital imaging device of claim 9 wherein said lens is a multiple element lens.
 15. The digital imaging device of claim 9 wherein said device is a camera.
 16. The digital imaging device of claim 9 wherein said optical defect is vignetting. 